/*
 * Jogger.cpp
 *
 *  Created on: Mar 4, 2012
 *      Author: trwulff
 */

#ifndef JOGGER_CPP
#define JOGGER_CPP
#include "Jogger.hpp"

/*
 * Default constructor
 */
		
	
	Jogger::Jogger(double jogtimeon,double jogtimeoff,float speed0)
	{
		JogTimeOn=jogtimeon;
		JogTimeOff=jogtimeoff;
		IsEnd=true;
		JogSpeed0=speed0;
	}

	/*
	 * Default destructor
	 */
	Jogger::~Jogger(){}
	void Jogger::SetJogSpeed(float speed)
	{
		JogSpeed0=speed;
	}
	float Jogger::GetCurrentSpeed(float speed)
	{
		if(!IsEnd)
		{
			if(JogTimer.Get()<JogTimeOn)return JogSpeed;
			if((JogTimer.Get()>=JogTimeOn)&&(JogTimer.Get()<(JogTimeOn+JogTimeOff)))return -JogSpeed;
			if((JogTimer.Get()>(JogTimeOn+JogTimeOff)))
			{
				IsEnd=true;
				JogTimer.Stop();
			}
		}
			
			return speed;
	}
	void Jogger::Restart(float speed)
	{
		if(IsEnd)
			{
			if(speed>=0.0)JogSpeed=JogSpeed0;
			if(speed<0.0)JogSpeed=-JogSpeed0;
			IsEnd=false;
			JogTimer.Reset();
			JogTimer.Start();
			}
	}



#endif

